Field
This disclosure relates generally to network communications processors, and more specifically, to capturing and identifying causes of packet loss in network communications processors.
Related Art
Modern computer networks pass data from an origin node to one or more destination nodes following a point-to-point protocol. Data packets are passed along a path of intermediate nodes between the origin and destination, forming a stream of packets. Intermediate nodes, including network devices such as routers and switches, read information in a header of each packet in a stream to determine the next node in the path to send the packet. Based upon the packet header information, the intermediate node can process the packet in various stages within a communications processor. Such processing can include selection of one or more output interfaces to forward a packet toward destination nodes, determination of access control list (ACL) treatment for the packet, determination of quality of service treatment for the packet, determination of accounting record keeping for the packet, determination of administrative treatment for the packet, and the like.
In order to perform such processing on packets in real time, a communication processor in the router or switch can include multiple processing stages in a pipeline and parallel pipelines can be used to process multiple packets at once. These stages can perform tasks such as reading the packet header information, determining destination input/output interfaces, and modifying metadata representing the packet header information to contain new routing information to facilitate the packet's transmission through the network device's switching fabric. In addition, network devices can filter packets based on certain criteria, including access control lists, or control the rate of packet flow based on certain criteria related to interface, precedence, quality of service group, or extended ACL criteria.
Programming the communication processor to address the various actions desired in forwarding and otherwise manipulating a specific packet includes how the packet information is passed from stage to stage. Such programming may include errors that result in a packet becoming “lost” and not arriving at the proper destination interface in the network device, or otherwise not being properly manipulated. Previous mechanisms for determining the nature of the errors in packet routing within a network device do not give information about lost packets in real time, thereby increasing the difficulty of debugging such programming. Further, these previous mechanisms can require the collection of a significant amount of data even before a determination that packets are being lost can be made. This can result in faulty network communication, degradation of service, and disgruntled users.
The use of the same reference symbols in different drawings indicates identical items unless otherwise noted. The figures are not necessarily drawn to scale.